package com.lv.thumb.common;

/**
 * 返回工具类
 *
 */
public class ResultUtils {

    /**
     * 生成成功响应
     *
     * @param data 响应携带的数据，类型为 T
     * @param <T>  响应数据的泛型类型
     * @return 包含成功状态的泛型响应对象
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "ok");
    }

    /**
     * 生成失败响应
     *
     * @param errorCode 错误码对象，包含错误码和错误信息
     * @return 包含错误信息的响应对象，泛型类型为 Object
     */
    public static BaseResponse<Object> error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode.getCode(), null, errorCode.getMessage());
    }

    /**
     * 生成失败响应
     *
     * @param code    错误码
     * @param message 错误信息
     * @return 包含错误信息的响应对象，泛型类型为 Object
     */
    public static BaseResponse<Object> error(int code, String message) {
        return new BaseResponse<>(code, null, message);
    }

    /**
     * 生成失败响应
     *
     * @param errorCode 错误码对象，包含错误码
     * @param message   错误信息
     * @return 包含错误信息的响应对象，泛型类型为 Object
     */
    public static BaseResponse<Object> error(ErrorCode errorCode, String message) {
        return new BaseResponse<>(errorCode.getCode(), null, message);
    }
}
